// pages/login/phone.js
const { authApi } = require('../../services/api.js')

Page({

  /**
   * 页面的初始数据
   */
  data: {
    phone: '',
    password: '',
    loading: false,
    showPassword: false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  /**
   * 输入手机号
   */
  onPhoneInput(e) {
    this.setData({
      phone: e.detail
    });
  },

  /**
   * 输入密码
   */
  onPasswordInput(e) {
    this.setData({
      password: e.detail
    });
  },

  /**
   * 切换密码显示/隐藏
   */
  onTogglePassword() {
    this.setData({
      showPassword: !this.data.showPassword
    });
  },

  /**
   * 忘记密码
   */
  onForgotPassword() {
    wx.showToast({
      title: '请联系管理员重置密码',
      icon: 'none'
      });
  },

  /**
   * 手机号登录处理函数
   */
  onPhoneLogin() {
    const { phone, password } = this.data;
    
    // 验证手机号
    if (!phone || !/^1[3-9]\d{9}$/.test(phone)) {
      wx.showToast({
        title: '请输入正确的手机号',
        icon: 'none'
      });
      return;
    }
    
    // 验证密码
    if (!password || password.length < 6) {
      wx.showToast({
        title: '密码长度不能少于6位',
        icon: 'none'
      });
      return;
    }
    
    this.setData({
      loading: true
    });
    
    wx.showLoading({
      title: '登录中...',
      mask: true
    });
    
    // 调用后端API进行手机号登录验证
    authApi.phoneLogin({ phone, password })
      .then(res => {
        console.log('登录接口返回结果:', res);
        
        // 检查登录是否成功
        if (res.code === 200 && res.data) {
          console.log('登录成功');
          // 保存用户信息和token
          const userInfo = res.data.user;
          const token = res.data.token;
          const role = res.data.role;
          const roleName = res.data.roleName;
          
          console.log('用户信息:', userInfo);
          console.log('Token:', token);
          console.log('角色:', role);
          
          // 保存到全局变量和本地存储
          const app = getApp();
          app.globalData.userInfo = userInfo;
          app.globalData.token = token;
          app.globalData.role = role;
          app.globalData.roleName = roleName;
          
          wx.setStorageSync('userInfo', userInfo);
          wx.setStorageSync('token', token);
          wx.setStorageSync('role', role);
          wx.setStorageSync('roleName', roleName);
          
          wx.showToast({
            title: '登录成功',
            icon: 'success'
          });
          
          console.log('准备跳转到首页');
          
          // 延迟跳转到首页
          setTimeout(() => {
            wx.switchTab({
              url: '/pages/index/index'
            });
          }, 1500);
        } else {
          console.log('登录失败:', res.message);
          wx.showToast({
            title: res.message || '登录失败',
            icon: 'none'
          });
        }
      })
      .catch(err => {
        console.error('登录接口调用失败', err);
        wx.showToast({
          title: '网络错误，请稍后重试',
          icon: 'none'
        });
      })
      .finally(() => {
        this.setData({
          loading: false
        });
        wx.hideLoading();
      });
  },

  /**
   * 切换到微信登录页面
   */
  onSwitchToWechat() {
    wx.navigateBack();
  },

  /**
   * 用户协议点击处理函数
   */
  onUserAgreement() {
    // 实际开发中这里应该跳转到用户协议页面
  },

  /**
   * 隐私政策点击处理函数
   */
  onPrivacyPolicy() {
    // 实际开发中这里应该跳转到隐私政策页面
  }
})